2018-07-02 | Mybatis | UNLOCK

Mybatis传参的方式

现在公司在使用Mybatis 做开发,遇到Mybatis传参的问题,刚好总结下,因为之前也没总结归纳过,刚好有时间做个总结。

方法一

1
2
3
4
5
6
7
8
9
public User selectUser(String name,int deptId);
<select id="selectUser" resultMap="UserResultMap">
select
*
from
user
where
user_name=#{0} and dept_id = #{1}
</select>

#{} 里面的数字 代表传入的 参数的 顺序,这样的传参方式,其实不太直观, 看代码的话,不方便。 不推荐

方法二

@Param 注解

1
2
3
4
5
6
7
8
9
public User selectUser(@Param("name") String name,@Param("deptId") int deptId);
<select id="selectUser" resultMap="UserResultMap">
select
*
from
user
where
user_name=#{name} and dept_id = #{deptId}
</select

#{} 里面 直接就是 @Param() 里面的值

==推荐此方法,直观,一目了然==

方法三

Bean 传参

1
2
3
4
5
6
7
8
9
public User selectUser(User user);
<select id="selectUser" resultMap="UserResultMap">
select
*
from
user
where
user_name=#{user.name} and dept_id = #{user.deptId}
</select>

==推荐此方法,直观,使用对象传参,看情况使用,需要建实体,扩展不便==

方法四

Map 传参

1
2
3
4
5
6
7
8
9
public User selectUser(Map<String,Object> params);
<select id="selectUser" resultMap="UserResultMap">
select
*
from
user
where
user_name=#{name} and dept_id = #{deptId}
</select>

==适用于多个参数 传参的情况,传参方式灵活,#{} 里面就是 map的 key==

评论加载中